Database tables in a star schema, i.e., databases with a fact table and a plurality of dimension tables, are often partitioned to improve performance. Partitioned Index (or “PI”) refers to the hash partitioning of a table. Partitioned primary index (or “PPI”) refers to an optional horizontal partitioning performed on top of the hash partitioning (specified by PI). A PPI can have a single level, in which partitioning is performed based on one field, or it can have multiple levels, sometimes nested, in which partitioning is performed based on a plurality of fields. The latter partitioning technique is called multi-level PPI or MLPPI. PPI and MLPPI can be used to reduce the amount of data read from a storage system in response to a query. In general, only data blocks with matching partition values are read. With correct partitioning, the query workload and disk I/O can be reduced. Selecting the MLPPI columns is a challenge.